namespace MLSharp.Filters
{
	/// <summary>
	/// Defines the contract for filters that require initialization before
	/// they can be used. 
	/// </summary>
	/// <remarks>
	/// A good example of a filter that requires initialization is a standardization
	/// or normalization filter.  The filter should be initialized using the training
	/// data only and should not be applied to the entire dataset in a single step.
	/// </remarks>
	public interface IRequiresInitializationFilter : IDataSetFilter
	{
		/// <summary>
		/// Initializes the filter using the specified dataset.
		/// </summary>
		/// <param name="dataSet"></param>
		void Initialize(IDataSet dataSet);
	}
}